import re

# 省级地址码
province = {
    11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
    21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",
    33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",
    41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",
    46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",
    54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",
    65:"新疆",71:"台湾",81:"香港",82:"澳门"
}

# 是否为身份证号
def varified_IdNumber(id_card):
    reg = r""
    result = re.match(reg,id_card)
    if result:
        print("身份证号合规")


# 身份证最后一位效验码(面向不合理)
def verified_lastNumber(id_card):
    check_list = [1,0,10,9,8,7,6,5,4,3,2]
    authority = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
    last = 10 if id_card[-1].upper() == 'X' else int(id_card[-1])
    cards = list(map(int,id_card[:-1]))

    result = 0
    for i in range(17):
        result += cards[i] * authority[i]
    index = result % 11
    if check_list[index] == last:
        return True
    else:
        return False
